import Koa from 'koa'
import Router from 'koa-router'
import { Collection } from 'mongodb';
import { OPGG } from '../reptile';
export async function createRoute(port: number, col: Collection<OPGG>) {

    const app = new Koa(); // 创建koa应用
    const router = new Router(); // 创建路由，支持传递参数

    // 指定一个url匹配
    router.get('/:m', async (ctx) => {
        if (ctx.params.m !== 'Yuisean') {
            ctx.status=400
            return
        }
        const arr = await col.find().sort({ "tier": 1 }).toArray()
        ctx.type = 'application/json;charset=utf-8'
        let i = 0
        const top: OPGG[] = []
        const jug: OPGG[] = []
        const mid: OPGG[] = []
        const adc: OPGG[] = []
        const sup: OPGG[] = []
        for (const item of arr) {
            item.name_zh = item.name_zh.split(":")[0]
            if (item.position === 'top') {
                top.push(item)
            } else if (item.position == 'jug') {
                jug.push(item)
            } else if (item.position == 'mid') {
                mid.push(item)
            } else if (item.position == 'adc') {
                adc.push(item)
            } else {
                sup.push(item)
            }
        }
        ctx.body = JSON.stringify([top, jug, mid, adc, sup])
    })

    // 调用router.routes()来组装匹配好的路由，返回一个合并好的中间件
    // 调用router.allowedMethods()获得一个中间件，当发送了不符合的请求时，会返回 `405 Method Not Allowed` 或 `501 Not Implemented`
    app.use(router.routes());
    app.use(router.allowedMethods({
        // throw: true, // 抛出错误，代替设置响应头状态
        // notImplemented: () => '不支持当前请求所需要的功能',
        // methodNotAllowed: () => '不支持的请求方式'
    }));

    app.listen(port)
}